package main.java.FSMDE.infrastructure;

import java.util.UUID;

import main.java.FSMDE.models.Diagram;
import main.java.FSMDE.models.Interface;
import main.java.FSMDE.models.Transition;


public interface IProjectContext {

	void addContextDiagram(Diagram mainDiagram);

	void addProjectDiagram(Diagram mainDiagram);

	String getName();

	void setName(String name);

	String getDataDirectory();

	void clearContextDiagrams();

	Iterable<Interface> getAllInterfaces();

	Iterable<Interface> getAllInterfaces(Interface interfaceToExclude);

	Iterable<Transition> getAllTransitions();

	Iterable<Transition> getAllTransitions(Transition transitionToExclude);

	Iterable<Diagram> getProjectDiagrams();

	Interface getInterface(UUID interfaceId);

	Diagram getContextDiagram(String defaultDiagramName);

	void clearProjectDiagrams();

	void removeDiagram(main.java.FSMDE.models.Diagram diagram);

	Diagram getDeppestContextDiagram();

}
